import axios from 'axios'
import { Message } from 'element-ui'
import store from '@/store'
import router from '@/router'
// import { getToken } from '@/utils/auth'
import { getTimeStamp } from '@/utils/auth'

// create an axios instance
// 封装axios
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000*36
})

service.interceptors.response.use(
  function (response) {
    if (response.data.message == "您的登录信息已过期，请重新登录！") {
      Message.error('请先登录再进行操作')
      store.dispatch('user/logout') // 登出action 删除token
      router.push('/login')//跳转登录页
      localStorage.clear()
    } else if (response && response.data.state == '20000') {
      return response
    } else {
      Message.error(response.data.message)
    }
  },
  function (error) {
    if (error.response) {
      // 处理浏览器请求失败的错误
      if (error.response.status === 404) {
        Message.error('请求的资源不存在')
      } else if (error.response.status === 403) {
        Message.error('没有权限访问该资源')
      } else {
        Message.error('请求发生错误')
      }
    } else if (error.request) {
      // 处理请求发送失败的错误
      Message.error('请求发送失败')
    } else {
      // 其他错误处理
      Message.error('请求发生错误')
    }
    return Promise.reject(error)
  }
)
//请求拦截器
service.interceptors.request.use(config => {
  // 在这个位置需要统一的去注入token
  if (store.getters.token) {
    // 如果token存在 注入token
    config.headers['Authorization'] = `${store.getters.token}`;
    // config.headers['Content-Type'] = 'application/x-www-form-urlencoded' 
  }
  return config // 必须返回配置
}, error => {
  return Promise.reject(error)
})
export default service
